package pe.edu.upc.dai.grupo4.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import pe.edu.upc.dai.grupo4.model.Usuario;
import pe.edu.upc.dai.grupo4.service.UsuarioService;
import pe.edu.upc.dai.grupo4.service.UsuarioServiceImpl;

/**
 *
 * @author tluyo
 */
public class CambiarContrasenaServlet extends HttpServlet {

    private UsuarioService usuarioService;

    public CambiarContrasenaServlet() {
        usuarioService = new UsuarioServiceImpl();
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String mensaje = "";
        boolean actualizado;

        HttpSession session = request.getSession();
        Usuario usuario = (Usuario) session.getAttribute("usuarioSession");
        String username = usuario.getUsuario();
        String passwordOld = request.getParameter("passwordold");
        String passwordNew1 = request.getParameter("passwordnew1");
        String passwordNew2 = request.getParameter("passwordnew2");
        try {
            actualizado = usuarioService.cambiarContrasena(username, passwordOld, passwordNew1, passwordNew2);
            mensaje = "Contraseña cambiada satisfactoriamente";
        } catch (Exception ex) {
            mensaje = ex.getMessage();
            actualizado = false;
        }
        /*
        Usuario usuario = usuarioService.seleccionarPorUsuario(username);
        if (usuario != null) {
        if (usuario.getPassword().equals(request.getParameter("passwordold"))) {
        if (request.getParameter("passwordnew1").equals(request.getParameter("passwordnew2"))) {
        String password = request.getParameter("passwordnew1");
        usuario.setPassword(password);
        usuarioService.actualizar(usuario);
        mensaje = "Password actualizado satisfactoriamente";
        actualizado = true;
        } else {
        mensaje = "Nuevo password no coincide";
        }
        } else {
        mensaje = "Password incorrecto";
        }
        } else {
        mensaje = "Usuario no existe";
        }
         */
        request.setAttribute("mensaje", mensaje);
        request.setAttribute("actualizado", actualizado);
        if (actualizado) {
            getServletContext().getRequestDispatcher("/bienvenida.jsp").forward(request, response);
        } else {
            getServletContext().getRequestDispatcher("/cambiarContrasena.jsp").forward(request, response);
        }
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
